package com.example.qiandao.service;

import com.example.qiandao.controller.requestdto.CheckinHistoryRequestDTO;
import com.example.qiandao.controller.responsedto.CheckinHistoryDTO;
import com.example.qiandao.controller.responsedto.ClassDTO;
import com.example.qiandao.entity.CheckinHistory;
import com.example.qiandao.repository.CheckinHistoryRepository;
import com.example.qiandao.repository.ClazzRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;

@Service
public class CheckinHistoryService {
    @Autowired
    private CheckinHistoryRepository checkinHistoryRepository;
    @Autowired
    private ClazzRepository clazzRepository;

    public List<CheckinHistoryDTO> getCheckinHistoryByClassId(Long classId) {
        return checkinHistoryRepository.findCheckinHistoriesByClazzId(classId).stream()
                .map(checkinHistory -> new CheckinHistoryDTO(checkinHistory.getId(), checkinHistory.getCheckinName(), checkinHistory.getStartTime(), checkinHistory.getEndTime()))
                .collect(Collectors.toList());

    }

    public boolean addCheckinHistory(CheckinHistoryRequestDTO requestDTO) {
        CheckinHistory checkinHistory = new CheckinHistory();
        checkinHistory.setClazz(clazzRepository.findById(requestDTO.getClazzId()).get());
        checkinHistory.setCheckinName(requestDTO.getHistoryName());
        checkinHistory.setStartTime(new Date()); // 当前时间
        long endTimeMillis = System.currentTimeMillis() + (requestDTO.getDurationInMinutes() * 60L * 1000L); // 当前时间 + 持续时间
        checkinHistory.setEndTime(new Date(endTimeMillis));
        return checkinHistoryRepository.save(checkinHistory)!=null;
    }
}
